Backups may be created utilizing several different methods. The different methods each may have their advantages, but utilizing different backup methods for a common backup client may not be compatible. For example, backups may be created at a file system block level. Backups may also be created at an application level, which may ensure that the application has the data to ensure that the application is in a consistent state. Backups may be full backups, meaning that they cover an entire set of data required to restore a system. Backups may also be partial or differential backups which may store only data since a previous backup. Application level backups and block level backups may be either full or differential backups. Maintaining a chronological order to backups may be important to ensure data integrity when restoring a system using the backups.
Different types of backups may have incompatibilities with each other. For example, block level backups may have incompatibilities with application level backups. Specifically, restoring a differential block based backup may prevent subsequent utilization of an application level backup. For example, if a user has block level backups and database level backups, the restoration of a differential block level backup may prevent the restoration of a database level backup. For example, if a user has a full block level backup from a Sunday night, a block level backup from Monday, and a database level differential backup from Tuesday, the user may be prevented from utilizing the database backup from Tuesday if the user relies on the block level backups.
Also, a block level backup may restore a system to a state in which a database is not capable of applying application level backups created after the block level backup was created. For example, if critical data is accidentally deleted from the database on Tuesday afternoon, a user may want to use a database level differential backup from Tuesday to restore transactions up to a point in time prior to the accidental deletion of the data.
Other applications may have similar conditions which require application level backups. However, block level backups may provide advantages over application level backups, such as with the backup of data associated with multiple applications, speed, and other advantages. For example, a storage image (e.g., a block level backup), such as a snapshot, may be created when a database or another application is running. This may provide a block level full backup without disruption to a user.
Additionally, many block level full backups may be sent to storage remote from a backup client. This may be done for safety, storage concerns, or other reasons. Sending a full backup from a remote location to a client for restoration may not be desirable if an application level differential backup would enable restoration of the client.
In view of the foregoing, it may be understood that there are significant problems and shortcomings associated with current data backup technologies.